home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
MacWorld 1999 April
/
Macworld (1999-04).dmg
/
Shareware World
/
Info
/
For Developers
/
MacCVS Pro 2.2.1
/
Read Me
< prev
Wrap
Text File
|
1999-01-20
|
14KB
|
341 lines
------------------------------------------------------------------------------
About MacCVS Pro
<http://www.maccvs.org/>
------------------------------------------------------------------------------
Introduction
------------
* About MacCVS Pro
MacCVS Pro is a full-featured client for the CVS source code control
system. It allows you to check in and out files to a network CVS
repository as well as run other CVS commands such as CVS Log and CVS
Status. In addition, MacCVS Pro is multi-threaded so you can execute
multiple operations simultaneously.
MacCVS Pro was designed to be easy to use and very intuitive and does
not assume the user is a software engineer or someone of similar
background.
* About CVS
CVS, which stands for Concurrent Version System, is a system used for
large- and small-scale software development projects, which tracks the
revision history of all files in the project, allows multiple developers
to work on the same source base, and allows for multiple versions of the
project to be developed concurrently from the same source tree.
In CVS, the client and server usually run on different machines, and the
client communicates with the server over a local area network, or the
Internet. The CVS server software is available in source form, and
should compile on most flavors of UNIX.
For more information about CVS, see Cyclic's web site, at:
<http://www.cyclic.com/cyclic-pages/overview.html>
Installation & setup
--------------------
These are intended to be introductory docs. For more detailed information,
see the documentation online at <http://www.maccvs.org/>.
* Installation
MacCVS Pro simply needs to be copied onto your hard drive. All its settings
are stored in the session files, so no additional files are required or
created.
* Session settings
To start using MacCVS Pro on a source tree, you first need to make a
session file. Run MacCVS Pro, and choose File:New to make a new
session file. You will be prompted for a location to save the file;
specify a name, and save the file. You will now see an empty window,
which is a project view window.
Before checking out any source files, you have to specify the address
of the CVS server, and some other details. Open the session settings from
the Edit menu (also Command-;). There are four panels of settings here,
accessible through the popup menu at the top of the dialog. The important
settings are described below.
Panel 1 "Checkout and update options"
At the top of this panel is a button used to set the root folder,
into which the source tree will go. Make a new folder in the
Finder (say, in the same folder as the MacCVS session file you
just created), then switch back to MacCVS, click this "Set"
button and selection the folder you just made. This is where
the source tree will be created when you check out.
The second grouping controls file merges. Use these options
to specify what happens on update when you have modified a file
locally, and someone else has also checked in changes. Most
people will want to use the "Auto Merge Text Files and Update
Binary Files".
Finally, the last two fields, which are very important. Here
you specify the module, or directory you want to check out,
and the revision (tag) or date you wish to check out to
(if any). The default module will either be a module name
("MacCVSPro") or a directory path ("src/maccvs/src/"). The
default revision may be empty, if you are checking out
to the tip, or it might be a branch tag ("MacCVS202_branch").
Panel 2 "Remote Host Information"
This panel is used to specify the address of the CVS server,
your user name and password, and the root of the CVS tree
on the repository.
The server hostname may be either a dotted name ("cvs.thisplace.com")
or IP addresss ("192.12.13.124"). User name is your user name
on the CVS server (which may be "anonymous" for a read-only server).
Password is your password on the server (some read-only servers
user "anonymous" here too). CVS Root specifies the root of the
source tree on the server, and will be given to you when you
get information about the CVS server. [See the section below about
interpreting UNIX-type CVS environment settings.]
Next, there is a field you can use to adjust the amount of
time MacCVS waits before giving up on a connection. You might
want to increase this on a busy server, or slow connection.
The lower panel here is used to control your authentication options
on the server. The normal method is 'Password', for which you just
need to enter a username and password in the fields. The other
authentication methods are not covered here, except to note that
the KClient option refers to Kerberos authentication, which requires
that you have Kerberos software installed.
Panel 3 "Encoding and file mappings"
These settings determine what file types will be used for files
that MacCVS Pro creates. You can probably leave these alone
unless you are using a development environment other than
Metrowerks CodeWarrrior.
Panel 4 "Messages & Misc"
The first two checkboxes control the verbosity of MacCVS Pro's
output messages. When checking out a new tree, you probably
want to just output messages for directories. When updating
an existing tree, outputting messages for every file is useful
so you can see what has changed.
The next two checkboxes control the behaviour of the message
window. Check the "Automatically clear message window" box to
wipe out all message for each new operation. "Scroll to new messages"
is obvious, can can slow down things a bit.
The New Folder properties refers to the look of folders in the Finder
that MacCVS Pro creates when you check out. For convenience, these
can be initialized to show in list mode.
* Interpreting UNIX-type CVS environment settings
CVS settings are often specified for UNIX or Windows users,
and are given as something like:
:pserver:anonymous@cvs1.mozilla.org:/cvsroot
In MacCVS Pro-speak, that translates to:
1. Use pserver authentication (Password option in settings).
2. Username is "anonymous" (without the quotes). The password
will also be specified separately, so you will have to enter
that as well.
3. The server address is cvs1.mozilla.org.
4. The CVS root is /cvsroot (leading / is important!).
The instructions then probably say something like "checkout the
module xyz", or, on the command line, "cvs checkout xyz". So
"xyz" is what you enter in the Default Module box.
If checking out to a particular tag:
cvs checkout xyz -r bugfix_branch
then you enter "bugfix_branch" in the Default revision box.
* Checking out
Now you have the session settings set up, it's a good time to save the
session file. All those settings are stored in the session file, as well
as any other tags that you use for updating individual files.
So, to check out the entire source tree, go Action:Check out default module
(Command-;). This gets the server to report which directories are in the
default module (as specified in the session settings), and checks out those
to your local disk. This can take some time, and eat up considerable amounts
of disk space, depending on the size of the tree.
Congratulations! Now you have checked out the source tree, and can
start to work on the code. You will notice that Codewarrior recognizes
that files checked out in this way are read-only, and when you try
to edit them for the first time, you have to make them writable. You
can do this either from MacCVS Pro (Action:Modify read-only, Command-M)
or in Codewarrior with the version control popup in the sourc window.
* Updating & merging
So you've edited a few files, and checked that they compile. Before you
check in, you might want to update your local tree, to get any other changes
that others have made since you checked out. You can either selection, and
update specific directories in MacCVS Pro, or simply do a Check out defalt
module again. If you want new changes merged into your modified files,
ensure that one of the 'Auto merge text files' options is turned on
in the session settings. Binary files (e.g. GIF files, or resource files)
cannot be merged, for obvious reasons, but MacCVS Pro updates them by
copying your modified version to a ~0 file, and checking out the new
version.
If both you and someone else have edited the same line in a source file,
then you may get merge conflicts. These will show up as a message with a
red warning icon. Merge conflicts must be resolved before you can check
in. Double-click the conflict message to show the bad file, and double
click the file to open it in CodeWarrior. A 'Make' will usually quickly
show you where the conflicts are.
* Checking in
Once you have resolved any merge conflicts, and are sure that your
changes build, you can check in. You can either simply show and
select your modified files in the project view windows (the Finder-like
views of your files), or you can use the Find Lurkers command to
list all new and modified files. In either case, select those files
that you want to check in, and use the Action:Commit menu command.
You will be asked for a checkin comment, and can select to use just
one comment for all files, or separate ones for each. Type in
a sensible command, and hit the Commit button. All being well,
the CVS server should send back responses that the commit was
successful, and the version number of the file will be updated.
* Gotchas
MacCVS is very careful about thread safetly and potential file
corruption, and thus prevents some operations on source files which
are open elsewhere. While updating or checking out, you must close
any open files in CodeWarrior or other editors which are in the
tree being updated, and you must close source files before committing
them. If you try to do an operation on an open file that requires write
access to the file's resource fork, you'll see a dialog asking you
to close open files.
* Other useful commands
It's always a good idea to diff files you are about to check in, to
make sure that you know what is going into the repository. MacCVS Pro
has two commands to do this: Status:Diff, which shows UNIX-style
diff output, and Status:Compare with original, which shows a more
useful view of the source using colors to hilight new, changed and
removed lines.
To add a new file or folder to the repository, use the Action:Add menu
command. Added files automatically get the checkin comment "First checked
in". Be careful when adding new files to choose the right file type;
source files should be added as TEXT, resource files as AppleSingle, and
other files (e.g. GIF files, SIT archives) as binary. Some attempt is made
to set the default to the correct one.
* Interoperability with other CVS clients
Due to the different way in which MacCVS Pro stores revision and other
information, source trees checked out using MacCVS Pro cannot be safely
used with other Macintosh CVS clients, and vice versa. You should stick
to using a single client on your source tree. This additional information
permits increased functionality and optimization in our client, so we
believe this to be worthwhile.
Known bugs & Limitations
------------------------
We know of no crashing bugs in MacCVS Pro.
The UI still needs some fine-tuning, and could do with a little more
functionality in project views (e.g. resizing columns). There are some
minor refresh problems here too.
* Other known bugs:
Pressing the "Stop" button while decoding an AppleSingle file will bring
up an "Error 700" message in the message window. This is harmless.
If you select thousands of items, MacCVS will slow down to a halt.
There is a bug in Find Lurkers where it won't find some modified files.
This only happens if you're running a Find Lurkers operation on
directory that already has some CVS operation (ie. checkout/update)
running on it. I don't know what the deal is here yet.
If you open a non-modified, non-MROed, file with Resourcer 2.0 it will
ask you if you want to open the file read only. If you choose the modify
the file, Resourcer will update the ckid with a bad checksum. Simply
open the 'ckid' resource, type in 0 for the checksum, close the resource
and save the file. That should clear up the problem. This bug is fixed
in Resorcerer 2.2.
Trying to commit a file that actually hasn't changed will fail. However,
the CVS server never sends an error message so you never get any
feedback that your operation has failed.
The project views do not update folder tags and other attributes if the
folder is collapsed.
Drag selecting any of the TE fields sometimes does weird things. This is
not a bug in MacCVS, but a problem in the PowerPlant LTextEditView
class.
Due to the poorly specified cvs server protocol, there are some problems
with operations on files in the root directory, and when using alias
directories (server-side aliases, that is).
* Limitations
Won't work with really old CVS servers (pre 1.5)
Trees checked out with MacCVS Pro can't be used with other Macintosh
CVS clients.
File names > 29 chars cause an error (This is a limitation of the Mac
file system and is not a MacCVS bug. Such files are simply ignored,
and do not interrupt the checkout process.)
No command line, not all CVS client operations supported (at present).
No gzip support (i.e. the equivalent of cvs -z9 checkout is not available).
Version history
---------------
2.2.1 January 1999
Updated to the new PowerPlant with Appearance Manager support, and
CodeWarrior Pro 4.
Support for Kerberos authentication added
Fixes for some cosmetic bugs.
Fixed a bug with aliased directories (CVS directory aliases, that is)
2.1b2 12 May 1998
Fixed a problem with Find Lurkers, which caused new files without resource
forks not to show up in the lurkers list.
Fixed a problem when committing files using keywords, which caused the
file not to be updated in your local tree.
Some minor window layout tweaks.
2.1b1 30 April 1998
First public release.
Last modified 99/01/12
Simon Fraser sfraser@netscape.com